package com.gitee.cirnochat.chat.service;

import com.gitee.cirnochat.chat.model.vo.req.*;
import com.gitee.cirnochat.chat.model.vo.resp.SignalMessageResponse;
import com.gitee.cirnochat.websocket.model.vo.resp.WebSocketMessageResponse;

import java.security.Principal;

public interface ChatService {
    void revokeMessage(ChatMessageRevokeRequest revokeRequest, Long userId);

    WebSocketMessageResponse sendChatMessage(ChatMessageSendRequest req, Principal principal);

    void sendBatchChatMessage(ChatMessageForwardRequest request, Principal principal);

    void sendChatSessionStatus(ChatSessionStatusMessageRequest heartbeatMessage, Principal princ);

    SignalMessageResponse handleSignalMessage(SignalMessageRequest message, Long userId);

}
